Non-volatile data storage devices, such as embedded memory devices (e.g., embedded MultiMedia Card (eMMC) devices) and removable memory devices (e.g., removable universal serial bus (USB) flash memory devices and other removable storage cards), have allowed for increased portability of data and software applications. Users of non-volatile data storage devices increasingly rely on the non-volatile storage devices to store and provide rapid access to a large amount of data. For example, a solid state drive (SSD) may store large audio files, images, videos, and other files.
A data storage device may include a non-volatile memory storing a table, such as a byte table, for use by a host device. To update the table, a transaction scheme may be used that applies updates to the table and, after the updates are performed, commits (e.g., saves) or aborts (e.g., discards) the updates. For example, in a typical transaction scheme, the data storage device generates a copy of the table to be used as an updateable table. The data storage device can modify the updateable table based on one or more update requests received from the host device. The data storage device may receive a commit indicator or an abort indicator after the updateable table has been modified.
To accommodate a non-nested update transaction or a nested update transaction, the data storage device reserves memory resources (e.g., storage space) to be allocated to support multiple versions of the table regardless of a size of a portion of the table that is updated. Accordingly, when the table is large in size, such as one or more megabytes, the data storage device reserves several megabytes of storage space for the multiple versions of the table. Additionally, copying the table to generate the updateable table may be a time consuming operation. When the table is large (e.g., several megabytes or more) a copying operation may take several seconds, during which time the data storage device may be inaccessible to the host device. Problems associated with storage space and the time associated with the copying operation may be compounded for nested transactions.